#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    //系统调用接口
    const char* s1 = "hello write\n";
    write(1, s1, strlen(s1));

    //C接口
    const char* s2 = "hello fprintf\n";
    fprintf(stdout, "%s", s2);

    const char* s3 = "hello fwrite\n";
    fwrite(s3, strlen(s3), 1, stdout);

    fork();
    return 0;
}

// int main()
// {
//     int fd = open("log.txt", O_RDONLY);
//     if(fd == -1)
//     {
//         perror("open");
//         return 1;
//     }
//     fd = dup2(fd, 0);
//     char buf[1024];
//     char* s = fgets(buf, sizeof(buf), stdin);
//     if(s == NULL) exit(2);
//     printf("%s", buf);
//     return 0;
// }

// int main()
// {
//     //int fd = open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
//     int fd = open("log.txt", O_WRONLY|O_CREAT|O_APPEND, 0666);
//     if(fd == -1)
//     {
//         perror("open");
//         return 1;
//     }
//     fd = dup2(fd, 1);
//     printf("hahahahah\n");
//     return 0;
// }


// int main()
// {
//     close(1);
//     int fd = open("log.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666);
//     if(fd == -1)
//     {
//         perror("open");
//         return 1;
//     }
//     printf("fd: %d\n", fd);
//     return 0;
// }


// int main()
// {
//     int fd = open("log.txt", O_RDONLY);
//     if(fd == -1)
//     {
//         perror("open");
//         return 1;
//     }
//     char buf[1024];
//     ssize_t s = read(fd, buf, sizeof(buf));
//     if(s > 0)
//     {
//         buf[s] = 0;
//         printf("%s", buf);
//     }
//     return 0;
// }